
      onTick: (data) => {
        redstoneManager.redstonePowerAfterEvent(data.block, {
          code: (block) => {
            if (block.permutation.getState("bd:open_bit") == true) return;
            wsDoorsFunction.interactWithDoor(block);
          },
          unpowered: (block) => {
            const topHalf = block.permutation.getState("bd:upper_block_bit");
            let doorPart = undefined;
            if (topHalf == false) {
              try {
                doorPart = block.above(1);
              } catch { }
            } else try {
              doorPart = block.below(1);
            } catch { }
            if (block.permutation.getState("bd:open_bit") == false) return;
            if (doorPart && doorPart.hasTag(wsDoorsFunction.doorHasTag) && doorPart.permutation.getState('bd:powered') == true) return;
            wsDoorsFunction.interactWithDoor(block);
          }
        });
        const block = data.block;
        if (!block) return;
        const doordata = wsDoorsFunction.doors.find((f) => f.id == block.typeId);
        const topHalf = block.permutation.getState("bd:upper_block_bit");
        let doorPart = undefined;
        if (topHalf == false) {
          try {
            doorPart = block.above(1);
          } catch { }
        } else try {
          doorPart = block.below(1);
        } catch { }
        if (doorPart == undefined) {
          if (topHalf == true) {
            block.setPermutation(BlockPermutation.resolve("minecraft:air"));
          } else {
            if (doordata) {
              const item = new ItemStack(doordata.itemID, 1);
              spawnItemAnywhere(item, block.location, block.dimension);
            }
            block.setPermutation(BlockPermutation.resolve("minecraft:air"));
          }
        } else if (!doorPart.hasTag(wsDoorsFunction.doorHasTag)) {
          if (topHalf == true) {
            block.setPermutation(BlockPermutation.resolve("minecraft:air"));
          } else {
            if (doordata) {
              const item1 = new ItemStack(doordata.itemID, 1);
              spawnItemAnywhere(item1, block.location, block.dimension);
            }
            block.setPermutation(BlockPermutation.resolve("minecraft:air"));
          }
        }
      },